﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Strongkeep.Model.Categories;
using Strongkeep.Model.Util;

namespace Strongkeep.Model
{
	/// <summary>
	/// 
	/// </summary>
	public abstract class Character
	{
		#region Public properties

		public int Id { get; set; }
		public string Name { get; set; }
		public string Description { get; set; }

		public int CharacterLevel { get; set; }
		public int HitPoints { get; set; }
		public int Initiative { get; set; }

		public CreatureSize Size {get; set; }
		public Alignment Alignment { get; set; }

		public int Strength { get; set; }
		public int Constitution { get; set; }
		public int Dexterity { get; set; }
		public int Intelligence { get; set; }
		public int Wisdom { get; set; }
		public int Charisma { get; set; }

		public int ArmorClass { get; set; }
		public int Fortitude { get; set; }
		public int Reflex { get; set; }
		public int Will { get; set; }

		/// <summary>
		/// 
		/// </summary>
		public int BloodiedValue
		{
			get { return CoreHelper.Half(HitPoints); }
		}

		/// <summary>
		/// 
		/// </summary>
		public int SurgeValue
		{
			get { return CoreHelper.Half(BloodiedValue); }
		}

		/// <summary>
		/// 
		/// </summary>
		public int SurgesPerDay { get; set; }

		/// <summary>
		/// 
		/// </summary>
		public Tier Tier
		{
			get { return CoreHelper.GetTier(CharacterLevel); }
		}

		#endregion


		#region Public members



		#endregion

	}
}
